package com.bookmanager.www.common.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bookmanager.www.common.Constants.PreferentialConstant;
import com.bookmanager.www.entity.FlBook;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;


import java.io.IOException;
import java.time.LocalDateTime;

/**
 * Created with IntelliJ IDEA.
 *
 * @author: 风离
 * @Date: 2021/09/24/11:06
 * @Description:
 */
@Slf4j
public class AddBookByIsbnUtils {
    /**
     * ukey1 20: uKey=6f83f88b4cca4faca9525ab1a928c7f3
     * ukey2 20: uKey =9c8f61929c2342f7b904e25be67f13bd
     * ukey3 20: uKey=9304910a1f674e24a7ddb9696fbee839
     */

    /**
     *
     * 
     * @param ISBN
     * @return
     * @throws IOException
     */
    public FlBook addBookByIsbnUtils2(String ISBN,Integer categoriesId) throws IOException {
        String url = "https://api.ibook.tech/v1/book/isbn?isbn=";
        url=url+ISBN+"&uKey=9c8f61929c2342f7b904e25be67f13bd";
        System.out.println("url为："+url);
//        String test =
//                "\n" +
//                "{\n" +
//                "  \"ret\": 0,\n" +
//                "  \"msg\": \"请求成功\",\n" +
//                "  \"data\": {\n" +
//                "    \"id\": 9787530212004,\n" +
//                "    \"name\": \"平凡的世界\",\n" +
//                "    \"subname\": null,\n" +
//                "    \"author\": \"路遥\",\n" +
//                "    \"translator\": null,\n" +
//                "    \"publishing\": \"北京十月文艺出版社\",\n" +
//                "    \"published\": \"2012-3-1\",\n" +
//                "    \"designed\": \"平装\",\n" +
//                "    \"code\": \"9787530212004\",\n" +
//                "    \"douban\": 10517238,\n" +
//                "    \"doubanScore\": 90,\n" +
//                "    \"brand\": null,\n" +
//                "    \"weight\": null,\n" +
//                "    \"size\": null,\n" +
//                "    \"pages\": \"1251\",\n" +
//                "    \"photoUrl\": \"https://img9.doubanio.com/view/subject/m/public/s8865866.jpg\",\n" +
//                "    \"localPhotoUrl\": \"\",\n" +
//                "    \"price\": \"CNY 79.80\",\n" +
//                "    \"froms\": \"\",\n" +
//                "    \"num\": 1,\n" +
//                "    \"createTime\": \"2021-04-23T15:43:03\",\n" +
//                "    \"uptime\": \"2021-09-24T10:38:43\",\n" +
//                "    \"authorIntro\": \"路遥（1949-1992），原名王卫国，1949年12月3日生于陕西榆林市清涧县一个贫困的农民家庭，因家贫7岁即过继给延川县农村的伯父。曾在延川县立中学学习，1969年回乡务农。其间做过许多临时性工作，并在农村一小学教书一年。1973年进入延安大学中文系学习，开始文学创作。大学毕业后，任《陕西文艺》（今为《延河》）编辑。1980年发表《惊心动魄的一幕》，获第一届全国优秀中篇小说奖。1982年发表中篇小说《人生》，获第二届全国优秀中篇小说奖。1988年完成百万字长篇巨著《平凡的世界》，于1991年获茅盾文学奖。1992年11月17日上午8时20分，路遥因病医治无效在西安逝世，年仅42岁。\",\n" +
//                "    \"description\": \"《平凡的世界(套装共3册)》是一部现实主义小说，也是小说化的家族史。作家高度浓缩了中国西北农村的历史变迁过程，作品达到了思想性与艺术性的高度统一，特别是主人公面对困境艰苦奋斗的精神，对今天的大学生朋友仍有启迪。这是一部全景式地表现中国当代城乡社会生活的长篇小说。《平凡的 世界(套装共3册)》共三部。作者在近十年问广阔背景上，通过复杂的矛盾纠葛，刻画了社会各阶层众多普通人的形象。劳动与爱情，挫折与追求，痛苦与欢乐，日常生活与巨大社会冲突，纷繁地交织在一起，深刻地展示了普通人在大时代历史进程中所走过的艰难曲折的道路。\"\n" +
//                "  }\n" +
//                "}";
        String json = sendGet(url);
//        String json = test;
        JSONObject obj = JSON.parseObject(json);
        String code = obj.getString("errcode");
        System.out.println(obj.getString("errcode"));
        if(!"0".equals(code))
        {
            return null;
        }
        JSONObject obj2 =JSON.parseObject(obj.getString("data"));
        //图书作者
        String author = obj2.getString("author");

        //图书上传者id 暂时写死 后期改再说
        String bookUpId = "1008611";

        //图书唯一id 采用isbn这个接口只能这样了
        String bookId = obj2.getString("isbn");

        //图书默认上架
        int status = 0;

        //图书名
        String title = obj2.getString("title");

        //图书封面
        String img = obj2.getString("img");

        // 作者描述
        String authorIntro = "";



        // ISBN
        String Isbn = ISBN;

        // 分类id 默认最新上架 3
//        int categoriesId = 3;

        // 库存 默认999
        int inventory = 999;

        // 图书价格 String 方便操作
        String price = obj2.getString("price").replaceAll(" ", "").
                replaceAll("CNY","").
                replaceAll("元","");
        //图书描述
        String description = obj2.getString("summary");

        //图书的出版社
        String publishing = obj2.getString("publisher");

        //创建时间
        LocalDateTime createdTimestamp = LocalDateTime.now();

        //更新时间
        LocalDateTime updatedTimestamp = LocalDateTime.now();

        //打印一下成果~
        log.info("图书作者："+author+"\n"+"图书描述"+description);

        return new FlBook(bookId,bookUpId,status,title,authorIntro,
                img,ISBN,author,price,categoriesId,inventory,description,publishing,
                createdTimestamp,updatedTimestamp);
    }


    /**
     *
     */
    public FlBook addBookByIsbnUtils3(String ISBN,Integer categoriesId,
                                      Integer inventory,Integer status) throws IOException {
        String url = "https://api.ibook.tech/v1/book/isbn?isbn=";
        url=url+ISBN+"&uKey=9c8f61929c2342f7b904e25be67f13bd";
        System.out.println("url为："+url);
//        String test =
//                "\n" +
//                "{\n" +
//                "  \"ret\": 0,\n" +
//                "  \"msg\": \"请求成功\",\n" +
//                "  \"data\": {\n" +
//                "    \"id\": 9787530212004,\n" +
//                "    \"name\": \"平凡的世界\",\n" +
//                "    \"subname\": null,\n" +
//                "    \"author\": \"路遥\",\n" +
//                "    \"translator\": null,\n" +
//                "    \"publishing\": \"北京十月文艺出版社\",\n" +
//                "    \"published\": \"2012-3-1\",\n" +
//                "    \"designed\": \"平装\",\n" +
//                "    \"code\": \"9787530212004\",\n" +
//                "    \"douban\": 10517238,\n" +
//                "    \"doubanScore\": 90,\n" +
//                "    \"brand\": null,\n" +
//                "    \"weight\": null,\n" +
//                "    \"size\": null,\n" +
//                "    \"pages\": \"1251\",\n" +
//                "    \"photoUrl\": \"https://img9.doubanio.com/view/subject/m/public/s8865866.jpg\",\n" +
//                "    \"localPhotoUrl\": \"\",\n" +
//                "    \"price\": \"CNY 79.80\",\n" +
//                "    \"froms\": \"\",\n" +
//                "    \"num\": 1,\n" +
//                "    \"createTime\": \"2021-04-23T15:43:03\",\n" +
//                "    \"uptime\": \"2021-09-24T10:38:43\",\n" +
//                "    \"authorIntro\": \"路遥（1949-1992），原名王卫国，1949年12月3日生于陕西榆林市清涧县一个贫困的农民家庭，因家贫7岁即过继给延川县农村的伯父。曾在延川县立中学学习，1969年回乡务农。其间做过许多临时性工作，并在农村一小学教书一年。1973年进入延安大学中文系学习，开始文学创作。大学毕业后，任《陕西文艺》（今为《延河》）编辑。1980年发表《惊心动魄的一幕》，获第一届全国优秀中篇小说奖。1982年发表中篇小说《人生》，获第二届全国优秀中篇小说奖。1988年完成百万字长篇巨著《平凡的世界》，于1991年获茅盾文学奖。1992年11月17日上午8时20分，路遥因病医治无效在西安逝世，年仅42岁。\",\n" +
//                "    \"description\": \"《平凡的世界(套装共3册)》是一部现实主义小说，也是小说化的家族史。作家高度浓缩了中国西北农村的历史变迁过程，作品达到了思想性与艺术性的高度统一，特别是主人公面对困境艰苦奋斗的精神，对今天的大学生朋友仍有启迪。这是一部全景式地表现中国当代城乡社会生活的长篇小说。《平凡的 世界(套装共3册)》共三部。作者在近十年问广阔背景上，通过复杂的矛盾纠葛，刻画了社会各阶层众多普通人的形象。劳动与爱情，挫折与追求，痛苦与欢乐，日常生活与巨大社会冲突，纷繁地交织在一起，深刻地展示了普通人在大时代历史进程中所走过的艰难曲折的道路。\"\n" +
//                "  }\n" +
//                "}";
        String json = sendGet(url);
//        String json = test;
        JSONObject obj = JSON.parseObject(json);
        String code = obj.getString("errcode");
        System.out.println(obj.getString("errcode"));
        if(!"0".equals(code))
        {
            return null;
        }
        JSONObject obj2 =JSON.parseObject(obj.getString("data"));
        //图书作者
        String author = obj2.getString("author");

        //图书上传者id 暂时写死 后期改再说
        String bookUpId = "1008611";

        //图书唯一id 采用isbn这个接口只能这样了
        String bookId = obj2.getString("isbn");

        //图书默认上架
//        int status = 0;

        //图书名
        String title = obj2.getString("title");

        //图书封面
        String img = obj2.getString("img");

        // 作者描述
        String authorIntro = "";



        // ISBN
        String Isbn = ISBN;

        // 分类id 默认最新上架 3
//        int categoriesId = 3;

        // 库存 默认999
//        int inventory = 999;

        // 图书价格 String 方便操作
        String price = obj2.getString("price").replaceAll(" ", "").
                replaceAll("CNY","").
                replaceAll("元","");
        //图书描述
        String description = obj2.getString("summary");

        //图书的出版社
        String publishing = obj2.getString("publisher");

        //创建时间
        LocalDateTime createdTimestamp = LocalDateTime.now();

        //更新时间
        LocalDateTime updatedTimestamp = LocalDateTime.now();

        //打印一下成果~
        log.info("图书作者："+author+"\n"+"图书描述"+description);

        return new FlBook(bookId,bookUpId,status,title,authorIntro,
                img,ISBN,author,price,categoriesId,inventory,description,publishing,
                createdTimestamp,updatedTimestamp);
    }


    /**
     * 免费接口 全但是不稳定
     * @param ISBN
     * @return
     * @throws IOException
     */
    public FlBook addBookByIsbnUtils(String ISBN,Integer categoriesId,Integer inventory,Integer status) throws IOException {
        // https://api.jike.xyz/situ/book/isbn/9787020024759?apikey=11428.9a14fef0e03e6625a31026aac2a5f99e.8cba0f622417126329bfd01f5c995812
        String url = "https://api.zuk.pw/situ/book/isbn/";
        url+=ISBN;
        url+= PreferentialConstant.apiKey;
        System.out.println("url为："+url);
//        String test =
//                "\n" +
//                "{\n" +
//                "  \"ret\": 0,\n" +
//                "  \"msg\": \"请求成功\",\n" +
//                "  \"data\": {\n" +
//                "    \"id\": 9787530212004,\n" +
//                "    \"name\": \"平凡的世界\",\n" +
//                "    \"subname\": null,\n" +
//                "    \"author\": \"路遥\",\n" +
//                "    \"translator\": null,\n" +
//                "    \"publishing\": \"北京十月文艺出版社\",\n" +
//                "    \"published\": \"2012-3-1\",\n" +
//                "    \"designed\": \"平装\",\n" +
//                "    \"code\": \"9787530212004\",\n" +
//                "    \"douban\": 10517238,\n" +
//                "    \"doubanScore\": 90,\n" +
//                "    \"brand\": null,\n" +
//                "    \"weight\": null,\n" +
//                "    \"size\": null,\n" +
//                "    \"pages\": \"1251\",\n" +
//                "    \"photoUrl\": \"https://img9.doubanio.com/view/subject/m/public/s8865866.jpg\",\n" +
//                "    \"localPhotoUrl\": \"\",\n" +
//                "    \"price\": \"CNY 79.80\",\n" +
//                "    \"froms\": \"\",\n" +
//                "    \"num\": 1,\n" +
//                "    \"createTime\": \"2021-04-23T15:43:03\",\n" +
//                "    \"uptime\": \"2021-09-24T10:38:43\",\n" +
//                "    \"authorIntro\": \"路遥（1949-1992），原名王卫国，1949年12月3日生于陕西榆林市清涧县一个贫困的农民家庭，因家贫7岁即过继给延川县农村的伯父。曾在延川县立中学学习，1969年回乡务农。其间做过许多临时性工作，并在农村一小学教书一年。1973年进入延安大学中文系学习，开始文学创作。大学毕业后，任《陕西文艺》（今为《延河》）编辑。1980年发表《惊心动魄的一幕》，获第一届全国优秀中篇小说奖。1982年发表中篇小说《人生》，获第二届全国优秀中篇小说奖。1988年完成百万字长篇巨著《平凡的世界》，于1991年获茅盾文学奖。1992年11月17日上午8时20分，路遥因病医治无效在西安逝世，年仅42岁。\",\n" +
//                "    \"description\": \"《平凡的世界(套装共3册)》是一部现实主义小说，也是小说化的家族史。作家高度浓缩了中国西北农村的历史变迁过程，作品达到了思想性与艺术性的高度统一，特别是主人公面对困境艰苦奋斗的精神，对今天的大学生朋友仍有启迪。这是一部全景式地表现中国当代城乡社会生活的长篇小说。《平凡的 世界(套装共3册)》共三部。作者在近十年问广阔背景上，通过复杂的矛盾纠葛，刻画了社会各阶层众多普通人的形象。劳动与爱情，挫折与追求，痛苦与欢乐，日常生活与巨大社会冲突，纷繁地交织在一起，深刻地展示了普通人在大时代历史进程中所走过的艰难曲折的道路。\"\n" +
//                "  }\n" +
//                "}";
        String json = sendGet(url);
//        String json = test;
        JSONObject obj = JSON.parseObject(json);
        String code = obj.getString("ret");
        System.out.println(obj.getString("ret"));
        if(!"0".equals(code))
        {
            return null;
        }
        JSONObject obj2 =JSON.parseObject(obj.getString("data"));
        System.out.println("obj2为null吗？"+obj2);
        if(obj2!=null)
        {
            String author="";
            //图书作者
            if(null==obj2.getString("author"))
            {

            }else {
                author = obj2.getString("author");
            }


            //图书上传者id 暂时写死 后期改再说
            String bookUpId = "1008611";

            //图书唯一id 采用 ISBN
            String bookId = ISBN;

            //图书页数
            String pages = obj2.getString("pages");

            //豆瓣评分
            String doubanScore= obj2.getString("doubanScore");

            //豆瓣图书id
            String douban = obj2.getString("douban");

            //图书默认上架
//            int status = 0;

            //图书出版时间
            String published = obj2.getString("published");


            //图书名
            String title = obj2.getString("name");

            //图书封面
            String img = obj2.getString("photoUrl");

            String authorIntro="";
            // 作者描述
            if(obj2.getString("authorIntro")==null)
            {

            }else {
                authorIntro = obj2.getString("authorIntro").replaceAll("\n", "");
            }


            // ISBN
            String Isbn = ISBN;

            // 分类id 默认最新上架 3
//        int categoriesId = 3;

            // 库存 默认999
//            int inventory = 999;

            // 图书价格 String 方便操作
            String price = obj2.getString("price").replaceAll("[^\\d.]+","");
            //图书描述
            String description = obj2.getString("description");

            //图书的出版社
            String publishing = obj2.getString("publishing");

            //创建时间
            LocalDateTime createdTimestamp = LocalDateTime.now();

            //更新时间
            LocalDateTime updatedTimestamp = LocalDateTime.now();

            //打印一下成果~
            log.info("图书作者："+author+"\n"+"图书描述"+description);

            return new FlBook(bookId,bookUpId,status,title,authorIntro,
                    img,ISBN,author,price,pages,doubanScore,douban,published,categoriesId,inventory,description,publishing,
                    createdTimestamp,updatedTimestamp);
        }
    return null;
    }


    /**
     * 向接口发送Get请求
     * @param urlParame
     * @return
     * @throws IOException
     */
    public static String sendGet(String urlParame) throws IOException {
        //创建httpclient实例
        HttpClient httpClient=new HttpClient();
        //设置httpclient连接主机服务器超时时间： 以毫秒为单位 1000ms=1s
        httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(10000);
        //创建get请求方法实例对象
        GetMethod getMethod=new GetMethod(urlParame);
        //设置get请求超时时间，value以毫秒为单位
        getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT,10000);
        //设置请求头
        getMethod.addRequestHeader("Content-Type", "application/json");
        //执行get
        httpClient.executeMethod(getMethod);
        //获取返回数据
        String result=getMethod.getResponseBodyAsString();
        //释放http连接
        getMethod.releaseConnection();

        return result;
    }
}
